Controlling content distribution

ABSTRACT

A computer-implemented method for controlling content distribution includes forwarding information associated with a user to a device operated by the user, the information being configured for use in selecting content from any of multiple content providers for a content distribution to the user. The method includes receiving, in response to the information, an edit of the information forwarded from the device. The edit identifies a first content provider and including a first modification of the content distribution regarding the first content provider. The method includes storing the edit in association with the information such that the first modification is taken into account in the content distribution. The method can be implemented using a computer program product tangibly embodied in a computer-readable storage medium.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority under 35U.S.C. §120 to U.S. application Ser. No. 12/401,426, filed on Mar. 10,2009, which claims priority to U.S. Provisional Application Ser. No.61/122,597, filed on Dec. 15, 2008, the entire contents of which arehereby incorporated by reference.

TECHNICAL FIELD

This document relates to information processing.

BACKGROUND

The World Wide Web is a system of interlinked documents, or web pages,accessible through the Internet. Generally, web pages can be accessed bya client device running a browser application. A Web cookie containingtext information can be sent by a web page server to a browser accessingthe web page and the cookie can be sent back each time the browseraccesses the web page. Some web page owners and other publishers includeadvertising content on their pages.

SUMMARY

In a first aspect, a computer-implemented method for controlling contentdistribution includes forwarding information associated with a user to adevice operated by the user, the information being configured for use inselecting content from any of multiple content providers for a contentdistribution to the user. The method includes receiving, in response tothe information, an edit of the information forwarded from the device.The edit identifies a first content provider and including a firstmodification of the content distribution regarding the first contentprovider. The method includes storing the edit in association with theinformation such that the first modification is taken into account inthe content distribution. The method can be implemented using a computerprogram product tangibly embodied in a computer-readable storage medium.

Implementations can include any, all or none of the following features.The content distribution can take place under an arrangement where thecontent providers provide advertising content for publication inconnection with content from any of a plurality of publishers, theplurality of publishers can receive compensation from the contentproviders in return for publication, and the edit can permit the user toexercise control over which of the advertising content is included inthe content distribution. The information can further identify at leastone interest that has been associated with the user for selecting thecontent for the content distribution, the edit can further include asecond modification of the content distribution regarding the interest,and the edit can be stored such that the second modification also istaken into account in the content distribution. The first modificationcan include altering the plurality of content providers to add or deletethe first content provider; and the second modification can includealtering the content distribution to add or delete the interest as beingassociated with the user. The edit can further include a user-definedmodification of the content distribution regarding an interest, and theedit can be stored such that the user-defined modification also is takeninto account in the content distribution.

The first content provider may have retargeted the user in response tothe user accessing content associated with the first content provider,and the information can identify the first content provider to the useras having retargeted the user. The edit can specify that the firstcontent provider is to be blocked from retargeting the user but that thefirst content provider can provide content to the user in the contentdistribution based on the information taking into account the firstmodification. The edit can further include a user preferencespecification regarding the content distribution, and the edit can bestored such that the user preference specification also is taken intoaccount in the content distribution. The user preference specificationcan define that the user prefers at least one of a text format and agraphic format for the content distribution.

The user preference specification can define that the user prefers atleast one of multiple attributes for the content distribution. Themethod can further include receiving a user identifier associated withthe user and accessible on the device for any of the multiple contentproviders to obtain the information for selecting the content for thecontent distribution. The user identifier can be forwarded from thedevice to obtain the information, and the information can be forwardedto the device in response to receiving the user identifier. The methodcan further include providing to the device executable instructions forexecution on the device, and the information can be forwarded to thedevice in response to receiving a request for the information from thedevice. The request can be generated using the executable instructions,and the executable instructions can be configured for the user to definethe edit to be forwarded. The device can have stored thereon a cookieincluding an identifier associated with the user, and wherein theexecutable instructions are configured for generating a cookie viewerapplication on the device. The cookie can include essentially only theuser identifier.

The method can further include identifying a predetermined number ofcontent portions as having been most recently presented to the user inthe content distribution; causing at least part of each of thepredetermined number of content portions to again be presented on thedevice; and receiving an input generated by the user from the device,the input identifying at least one of the content portions and includinganother edit of the information regarding the identified contentportion. The other edit can include that the identified content portionis to be blocked from being presented on the device. The method canfurther include causing at least part of the information to be presentedon the device, wherein the first content provider is referred to asanonymous in the presented information.

In a second aspect, a graphical user interface for controlling contentdistribution includes an information edit area generated on a device fora user to specify an edit of information configured for use in selectingcontent from any of multiple content providers for a contentdistribution to the user. The edit identifies a first content providerand includes a first modification of the content distribution regardingthe first content provider. The graphical user interface causes the editto be stored in association with the information such that the firstmodification is taken into account in the content distribution.

Implementations can include any, all or none of the following features.A predetermined number of content portions can be identified as havingbeen most recently presented to the user in the content distribution andthe graphical user interface can cause at least part of each of thepredetermined number of content portions to again be presented on thedevice, and receive an input generated by the user identifying at leastone of the content portions and including another edit of theinformation regarding the identified content portion. The device canhave stored thereon a cookie including an identifier associated with theuser, and the graphical user interface can include a cookie viewerapplication configured for generating a request for the information fromthe device and defining the edit.

In a third aspect, a computer-implemented method for controlling contentdistribution includes presenting information associated with a user on adevice operated by the user, the information received from anotherdevice and being configured for use in selecting content from any ofmultiple content providers for a content distribution to the user. Themethod includes registering an edit of the information made by the user,the edit identifying a first content provider and including a firstmodification of the content distribution regarding the first contentprovider. The method includes forwarding the edit to the other devicesuch that the first modification is taken into account in the contentdistribution. The method can be implemented using a computer programproduct tangibly embodied in a computer-readable storage medium.

Implementations can include any, all or none of the following features.The information can further identify at least one interest that has beenassociated with the user for selecting the content for the contentdistribution, the edit can further include a second modification of thecontent distribution regarding the interest, and the edit can be storedsuch that the second modification also is taken into account in thecontent distribution. The first content provider may have retargeted theuser in response to the user accessing content associated with the firstcontent provider, and the information can identify the first contentprovider to the user as having retargeted the user. The method canfurther include presenting each of a predetermined number of contentportions on the device, the predetermined number of content portionsbeing identified as having been most recently presented to the user inthe content distribution; and registering that the user identifies atleast one of the content portions, wherein the edit includes anotheredit of the information regarding the identified content portion. Theother edit can include that the identified content portion is to beblocked from being presented on the device. The method can furtherinclude receiving at the device executable instructions for execution,the device may have stored thereon a cookie including an identifierassociated with the user and the executable instructions can beconfigured for generating a cookie viewer application on the device, thecookie viewer application configured for requesting the information fromthe other device and for registering the edit to be forwarded.

Implementations can provide any, all or none of the followingadvantages. User control over content distribution can be improved. Acookie viewer application can be provided for a user to view and/or editregistered information that is used for selecting content fordistribution. Improved user-targeted content distribution can beprovided.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features andadvantages will be apparent from the description and drawings, and fromthe claims.

DESCRIPTION OF DRAWINGS

FIG. 1 shows an example of a system for controlling contentdistribution.

FIG. 2 shows an example of a process for controlling contentdistribution.

FIG. 3 shows an example of a process for providing content.

FIG. 4 is a block diagram of a computing system that can be used inconnection with computer-implemented methods described in this document.

Like reference symbols in the various drawings indicate like elements.DETAILED DESCRIPTION

FIG. 1 is a schematic diagram of an example of a computer system 100that in some implementations can be used for controlling contentdistribution. Content, such as Internet advertising content or any otherform of media, can be created by one or more content providers(advertisers, for example), and presented to one or more users of thesystem 100 by a content publisher (one or more website owners, forexample). In some implementations, the computer system 100 can provideinformation and control to a user regarding the type and/or the sourceof presented content, for example.

The system 100 in this example includes a computer device 102, one ormore content distribution systems 104, one or more content providersystems 106, and one or more content publisher systems 108, hereconnected by a network 110. Any kind of computer devices can be usedincluding, but not limited to, personal computers, handheld devices suchas cellular phones, and/or server devices. Components in the system 100can be connected by any kind of network, such as a private network orthe Internet. For example, the computer device 102 can be operated by anindividual who accesses resources in a network, for example web pages onthe Internet.

The content provider system 106 can, for example, be operated by one ormore content providers. The content providers can provide content suchas advertisements intended for presentation to the user(s) on thecomputer device 102, for example. Content can include any kind of media,such as elements of text, video, animation, sound, and/or interactivecomponents, to name a few possibilities. Elements of content can betailored for a specific user, based on defined user interests andpreferences, for example. For example, a shoe company can designate ashoe advertisement intended for presentation to the general public and aseparate shoe advertisement intended for targeted presentation to any orall users with an interest in the outdoors.

User interest data can be compiled by a variety of methods, includingself-reporting by users, and user registration and/or patronage ofresources such as websites associated with particular advertisers orinterests, to name a few possibilities. Procedures can be put in placeto protect user privacy, such as through the provision of a user privacypolicy, and/or to allow a user to opt out of information-sharingsystems. The content publisher system 108 can, for example, be operatedby one or more content publishers. The content publisher(s) can providecontent such as websites or any other kind of media to be accessed by auser of the computer device 102, for example. The content publisher canpresent information and content such as text, video, sound, and games(to name a few possibilities) to visitors of the sites. Additionally,the content publishers can present content (such as advertising content,for example) from content providers. For example, the contentdistribution can take place under an arrangement where content providersprovide content such as advertising for publication in connection withcontent from one or more publishers, and the publishers receivecompensation in return for publication.

The content distribution system 104 can, for example, serve acoordinating role in determining which content provided by one or morecontent providers to make available in connection with one or morecontent publishers. The content distribution system 104 in this exampleincludes a content database 112 and an information database 114. Here,for example, information regarding advertising content from a contentprovider can be sent from the content provider system 106 to the contentdistribution system 104 via the network 110 and stored in the contentdatabase 112. In some implementations, information regarding a deviceuser can be collected by methods including the previously describedexemplary methods and stored in the information database 114, forexample. In the present example, information regarding a device user canbe retrieved from the information database 114 and used by the contentdistribution system 104 to determine which advertising content can bemade available in connection with a web page provided by a contentpublisher associated with the content publisher system 108.

The computer device 102 in this example includes at least one cookie116, a cookie viewer application 118, and a cookie viewer interface 120.Each user of the device 102 can be associated with one or more cookies,for example. The computer device 102 can, for example, be controlled bya user to access a web page on the Internet. In the present example, thecookie 116 can be placed on the computer device 102 by a server deviceassociated with the content publisher system 108 via the network 110.The placement of the cookie 116 may be, for example, in temporalconnection with the user visiting a page or other content provided bythe server. Here, for example, the computer device 102 can store thecookie 116 including an identifier associated with the user. In someimplementations, the cookie 116 can include essentially only a useridentifier. For example, a user identifier associated with a user andaccessible on the device 102 can be received by the content distributionsystem 104 for one or more content providers to obtain information forselecting the content for content distribution. Here, for example, auser identifier can be forwarded from the device 102 to obtain theinformation, and the information can be forwarded to the device 102 inresponse to receiving the user identifier.

In the present example, the cookie viewer application 118 can be acomputer program product tangibly embodied in a computer-readablestorage medium. The cookie viewer application can include instructionsthat, when executed, generate on a display device associated with thecomputer device 102 a graphical user interface for controlling contentdistribution, for example the cookie viewer interface 120.

In some implementations, the cookie viewer application 118 and/or thecookie viewer interface 120 can provide user access or control ofinformation used in content distribution to the user. For example, thecookie viewer application 118 can be configured for generating a requestfor information associated with a user and/or can define an edit to theinformation. In some implementations, a user can download the cookieviewer application 118 and can install the application 118 on thecomputer device 102. In the present example, the application 118 can bedelivered by a website associated with the content distribution system104.

The application 118 can, for example, run on the device 102 and can passthe cookie 116 or information associated with the cookie 116 via thenetwork 110 to the content distribution system 104. The contentdistribution system 104 can use the cookie 116 or an associatedidentifier to locate information in the information database 114relating to a user of the device 102, for example. The information caninclude user interests, content display preferences, content providerpreferences, and/or information relating to one or more contentproviders targeting a user, to name a few examples. The information or asubset of the information associated with a device user can, forexample, be forwarded to the device 102 via the network 110. Theinformation can be configured for use in selecting which content fromproviders to distribute to a user, for example. In the present example,information associated with a device user can be received by thecomputer device 102 and can be presented on a display device associatedwith the device 102.

In the present example, the cookie viewer application 118 can presentthe cookie viewer interface 120. For example, the cookie viewerinterface 120 can include an information edit area generated on adisplay device associated with the computer device 102 for a user tospecify an edit of information configured for use in selecting contentfrom any of multiple content providers for a content distribution to theuser. The edit in the present example can identify a content provider(such as a shoe company, for instance) and can include a modification ofthe content distribution regarding the content provider. For example, auser can choose to enable disable targeted advertising content from theshoe company. In the present example, the cookie viewer interface 120can cause the edit of the information made by the user to be registeredand to be stored in association with the information such that themodification is taken into account in the content distribution. Here,for example, the edit can be forwarded to the content distributionsystem 104 via the network 110 and stored by the system 104. Informationassociated with a particular user and edits made to the information bythe user can be used by the content distribution system 104 to provideuser control over which of the advertising content is included in thecontent distribution, for example whether general or targeted shoecompany advertising content is to be presented to a particular user. Insome implementations, other edits regarding content providers can bemade. For example, the user can be able to explicitly select one or morecontent providers so that content from the selected provider(s) isreceived.

In some implementations, the information can identify one or moreinterests that have been associated with a user for selecting thecontent for content distribution. For example, it can be determined bymethods such as the previously presented exemplary methods that a userhas interests in the outdoors and in sports. The information can bepresented by the cookie viewer interface 120, for example, and the usercan be allowed to edit the information. In some implementations, a usercan add or delete associated interests. Here, for example, a user canchoose to deselect or disable an interest in sports and to select orenable an interest in gadgets, and the edit can be stored such that themodification is taken into account in the content distribution. Forexample, the content distribution system 104 can determine that contentassociated with selected interests (such as outdoors and gadgets) is tobe presented to a user and that content associated with deselectedinterests (such as sports) is not to be presented. In someimplementations, other edits regarding interests can be made. Forexample, the user can be able to explicitly select and/or enter one ormore interests so that content regarding the selected interest(s) isdelivered to the user.

In some implementations, a user can add or delete content providers. Forexample, a user can specify a preference to receive content from oneelectronics store, but not to receive content from another electronicsstore. In some implementations, a content provider can be referred to asanonymous. For example, an advertiser that delivers targeted advertisingcan express a preference to not identify itself In the present example,advertisers choosing anonymity can be referred to as anonymous in thecookie viewer interface 120. Here, for example, a user can specify apreference to not receive targeted advertisements from anonymous contentproviders.

In some implementations, the edit to the information can include auser-defined modification. For example, a user can have an interest inan interest category such as home recording. In the present example, afree-form entry control can be provided via the cookie viewer interface120 to allow for such additions. An edit including a user-definedmodification of content distribution regarding an interest can be storedsuch that the user-defined modification is taken into account in thecontent distribution, for example.

In some implementations, a content provider can retarget a user inresponse to the user accessing content associated with the contentprovider. For example, a user can register with a website operated by ashoe company and be subsequently provided with retargeted advertisingcontent, such as personalized advertisements, when the user visits thesame and/or another page, for example. Here, for example, via the cookieviewer application 118 and the cookie viewer interface 120, one or morecontent providers (e.g. the shoe company) can be identified as havingretargeted the user. In the present example, the user can specify thatthe content provider (e.g. the shoe company) is to be blocked fromretargeting the user but that the content provider can provide contentto the user based on prior modifications.

In some implementations, a user can specify a preference regarding thecontent distribution. A user can specify a preference for one or moreattributes for content distribution, such as text, graphics, video,animation, sound, or interactivity, to name a few examples. Here, forexample, via the cookie viewer application 118 and/or the cookie viewerinterface 120, a user can specify a preference for content includingvideo and sound. In the present example, the edit can be stored suchthat the user preference specification is taken into account in thecontent distribution.

In some implementations, a predetermined number of content portions canbe identified as having been most recently presented to a user in thecontent distribution. For example, the content distribution system 104or the cookie viewer application 118 can track the ten most recentadvertisements that were presented to a user. In the present example, agraphical user interface associated with the cookie viewer application118 can cause at least part of each of the ten advertising contentportions to be again presented on the device, such as in the interface120. Here, the application 118 can receive an input generated by theuser identifying at least one of the advertising content portions andcan include an edit of the information regarding the portion(s). Forexample, a user can specify a preference that one or more advertisementsare, or are not, to be subsequently displayed. In the present example,the edit can be stored such that one or more of the identified contentportions is to be blocked from being presented on the device. FIG. 2shows an example of a process 200 for controlling content distribution.In some implementations, the process 200 can be performed in the system100, for example by a processor executing instructions from a computerreadable storage device. More or fewer steps can be performed; asanother example, one or more steps can be performed in another order.

The process 200 can, for example, be initiated by a user accessingcontent such as a web page on the Internet by using a computer devicesuch as a desktop or portable computer, a server, or a cell phone, toname a few examples. In the present example, the process 200 can includea step 202 for visiting a web page. Here, for example, the web page canbe associated with a content publisher in the system 100. In otherimplementations, the web page can be associated with another entity inthe system 100, such as a content provider or content distributor.

The process 200 can include a step 204 for downloading a cookie viewer.In some implementations, the cookie viewer can be downloaded from a webpage, such as a web page visited in step 202, or a web page associatedwith the content distribution system 104, for example. Here, forexample, step 204 can include receiving at the device instructions forexecution. In the present example, the executable instructions can beconfigured for generating a cookie viewer application on the device. Thecookie viewer can be a stand-alone application, or an applicationrunning within a web browser, to name a couple of examples.

The process 200 can include a step 206 for running a cookie viewer. Forexample, the cookie viewer can be a cookie viewer downloaded in step204. In some implementations, step 206 can include executinginstructions that can generate on a display device a graphical userinterface. The interface can, for example, allow a user to view and/oredit information associated with an Internet cookie stored on a computerdevice.

The process 200 can include a step 208 for viewing recent content(s).For example, the content(s) can be presented to the user by anapplication such as a cookie viewer run in step 206. In someimplementations, a predetermined number of content portions can beidentified as having been most recently presented to the user. Forexample, ten advertisements or portions of the ten advertisements mostrecently presented to a user (by a web browser, for example) can againbe presented on the device. In the present example, the contents can beretrieved by a computer device forwarding a cookie or informationassociated with a cookie to a server that can track content (e.g.advertising) previously sent to a particular device. Here, content orportions thereof can be retrieved, for example from a database, andresent to a requesting device. In some implementations, content orportions of content can be cached on the computer device itself.

The process 200 can include a step 210 where the user makes one or moreedits. In some implementations, the edit can permit the user to exercisecontrol over advertising content to be included in the contentdistribution. For example, the edit(s) can be made relating to recentlypresented content viewed in step 208. In the present example, a user canidentify one or more of the ten content portions (e.g. advertisements)most recently presented to the user and specify that the identifiedcontent portion(s) are to be blocked from being presented on the device.In some implementations, a user can identify one or more contentportions and can express a positive or negative preference for theidentified content portions. In some implementations, a user canidentify one or more content providers and can express a positive ornegative preference for the identified content providers.

The process 200 can include a step 212 for forwarding one or more edits.For example, the forwarded edit(s) can be the edit(s) made in step 210.In the present example, the edit(s) can be forwarded to a server storingpreference information, for example, a server associated with the system100. Here, for example, edit(s) signifying a blocking preference can beused by the system 100 to prevent presentation of one or more contentportions. For example, the presentation of a content portion (e.g. anadvertisement) to a user can be prevented upon receiving edit(s) fromthe user specifying a preference for blocking the content portion.Blocking can be performed by one or more servers associated with thesystem 100 or by a device operated by a user, for example. In someimplementations, edit(s) signifying positive or negative contentpreference data associated with a user or a set of users of the system100 can be used to determine a frequency and/or schedule for thepresentation of one or more content portions. For example, a user canspecify a preference for a specific content portion. The specifiedpreference can be used by the system 100, for example to increase thefrequency of display of the content portion and/or related contentportions to the user and/or related users. For example, a contentportion associated with a positive user preference can be presented morefrequently to another user or another set of users determined to besimilar, such as users having similar interests.

In some implementations, a user can opt out of some or all targetedadvertising through use of an optional persistent opt-out cookie that ismanaged through a browser plug-in. The opt-out cookie may be, forexample, a client-side cookie with a non-tracking id such as id=OPT_OUT.For example, an opt-out browser plug-in can monitor the existence of theopt-out cookie, and can reset the opt-out cookie in case it is removed.The opt-out plug-in can take the form of, for example, a browserextension or browser ad-on. Once installed, the plug-in automaticallyopts-out of targeted advertisements, or, in some implementations, addsan opt-out menu item to the browser tools menu or other browser userinterface providing the capability to opt-out of targeted advertisingcookies.

When enabled, the extension or add-on can respond to events such as, forexample, the completed rendering of a web-page, the manually deletion ofa cookie through the browser's functions, or cookie modification throughthird party software. Either immediately upon these events or after atimeout period, such as, for example, a configurable timeout period setto 10 minutes by default, the extension can programmatically restore theopt-out cookie if it no longer exists. If the browser settings areinconsistent with the opt-out plug-in, such as, for example, when thebrowser is configured to “block 3rd party cookies”, the extension can begrayed out and an alert to the user, through a bubble, tool-tip, or thelike may be presented. Such an opt-out browser plug-in may be configuredas part of the preferences tool to, for example, respect selections madeby the user and/or opt-out of certain types of advertisements.

FIG. 3 shows an example of a process 300 for providing content. In someimplementations, the process 300 can be performed in the system 100, forexample by a processor executing instructions from a computer readablestorage device. Here, for example, the instructions when executed by aprocessor can perform a method for controlling content distribution.More or fewer steps can be performed; as another example, one or moresteps can be performed in another order.

The process 300 can, for example, be initiated by a server accessed by adevice over a network such as a desktop or portable computer, a cellphone, or another server, to name a few examples. In the presentexample, the process 300 can include a step 302 for registeringinformation. Here, for example, registering of information can beperformed by a server in the system 100, such as a server associatedwith a content distributor, a content provider, or a content publisher.The information can be associated with a device such as a computerdevice in the system 100 and/or a user controlling a device, forexample. In the present example, a device can provide information to aserver upon accessing a web page associated with the server. Here, forexample, information can include, but is not limited to information suchas user name(s), password(s), preferences, and/or device-relatedinformation.

The process 300 can include a step 304 for placing a cookie. Forexample, a cookie can be placed on a computer device by a server uponregistering device information, such as in step 302. In someimplementations, a server registering information associated with a userand/or a device can place a cookie including a user and/or a deviceidentifier. For example, identifier(s) can be unique ID(s) generated bya server associated with the system 100. In the present example, one ormore identifiers can be stored in a database associated with the serverwith information related to one or more users and/or one or moredevices. Information related to user(s) and/or device(s) can be storedand retrieved by using associated identifier(s).

The process 300 can include a step 306 for forwarding a cookie viewerapplication. For example, a cookie viewer can be forwarded to a computerdevice having a placed cookie, such as a cookie placed in step 304. Inthe present example, a cookie viewer can be forwarded to a device by aserver associated with the system 100. In some implementations, a cookieviewer can include executable instructions for execution on a deviceconfigured for a user to view information and/or to define an edit toinformation associated with a user and/or device.

The process 300 can include a step 308 for receiving one or more edits.In some implementations, edit(s) can be performed by a user operating acomputer device such as a device running a cookie viewer downloaded instep 306, for example. Here, for example, information can be forwardedto the device in response to receiving a request for information fromthe device. Information can be forwarded by a server associated with thesystem 100, for presentation on the device, for example. In the presentexample, information can include, but is not limited to information suchas content preference(s) relating to provider, interest, presentation,and/or format. Here, for example, a server can receive one or more editsto the information made by a user operating an interface associated witha cookie viewer.

The process 300 can include a step 310 for storing one or more edits.For example, the edit(s) can be edit(s) received in step 308. In someimplementations, edit(s) can be associated with one or more identifiers,such as user and/or device identifiers, for example. In the presentexample, identifier(s) can be included in a cookie placed on a computerdevice in step 304. The cookie or identifier(s) included in the cookiecan be used by a server for storing related edit(s) in a database, forexample.

The process 300 can include a step 312 for providing content. Forexample, content can be provided by a server associated with the system100 to a computer device associated with the system 100. In someimplementations, a method for determining the content that can beprovided to a device can take into account information associated with auser and/or a device as well as edit(s) to the information, such asedit(s) stored in step 310, for example. In the present example,provided content can include text, video, animation, sound, and/orinteractive elements, to name a few possibilities. Here, for example,content can be associated with one or more providers, interests,presentation styles and formatting types. In some implementations, adetermination of content to be provided to a user and/or a device can bebased at least in part on stored information and/or edit(s) associatedwith the user and/or the device. For example, a server such as a serverin the system 100 can compare the content with the information and/oredit(s) and can determine whether characteristics of the content matchpreferences expressed in the information and/or edit(s). In someimplementations, a server can take into account one or more preferencesexpressed in the information and/or edit(s) associated with a set ofusers and/or devices related to a user and/or device when determiningwhich content to provide. For example, a user can be identified ashaving a positive or negative interest in sports by consideringinformation and/or edit(s) associated with the user. Here, for example,a server can provide content preferred by one or more other users with asimilar interest in sports.

In some implementations, provided content can include advertisingcontent for presentation in a web browser, for example. In someimplementations, provided content can include entertainment and/orinformation content, such as music, video, animation, news, and/orgaming content, to name a few examples. The content can be presented bya web browser or a non-browser application running on a computer device,for example. In some implementations, content can be presented on adevice in communication with the computer device, such as peripheralvideo and/or sound devices, or another computer device, to name a fewexamples.

FIG. 4 is a schematic diagram of a generic computer system 400. Thesystem 400 can be used for the operations described in association withany of the computer-implement methods described previously, according toone implementation. The system 400 includes a processor 410, a memory420, a storage device 430, and an input/output device 440. Each of thecomponents 410, 420, 430, and 440 are interconnected using a system bus450. The processor 410 is capable of processing instructions forexecution within the system 400. In one implementation, the processor410 is a single-threaded processor. In another implementation, theprocessor 410 is a multi-threaded processor. The processor 410 iscapable of processing instructions stored in the memory 420 or on thestorage device 430 to display graphical information for a user interfaceon the input/output device 440.

The memory 420 stores information within the system 400. In oneimplementation, the memory 420 is a computer-readable medium. In oneimplementation, the memory 420 is a volatile memory unit. In anotherimplementation, the memory 420 is a non-volatile memory unit.

The storage device 430 is capable of providing mass storage for thesystem 400. In one implementation, the storage device 430 is acomputer-readable medium. In various different implementations, thestorage device 430 may be a floppy disk device, a hard disk device, anoptical disk device, or a tape device.

The input/output device 440 provides input/output operations for thesystem 400. In one implementation, the input/output device 440 includesa keyboard and/or pointing device. In another implementation, theinput/output device 440 includes a display unit for displaying graphicaluser interfaces.

The features described can be implemented in digital electroniccircuitry, or in computer hardware, firmware, software, or incombinations of them. The apparatus can be implemented in a computerprogram product tangibly embodied in an information carrier, e.g., in amachine-readable storage device, for execution by a programmableprocessor; and method steps can be performed by a programmable processorexecuting a program of instructions to perform functions of thedescribed implementations by operating on input data and generatingoutput. The described features can be implemented advantageously in oneor more computer programs that are executable on a programmable systemincluding at least one programmable processor coupled to receive dataand instructions from, and to transmit data and instructions to, a datastorage system, at least one input device, and at least one outputdevice. A computer program is a set of instructions that can be used,directly or indirectly, in a computer to perform a certain activity orbring about a certain result. A computer program can be written in anyform of programming language, including compiled or interpretedlanguages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, or other unitsuitable for use in a computing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors ofany kind of computer. Generally, a processor will receive instructionsand data from a read-only memory or a random access memory or both. Theessential elements of a computer are a processor for executinginstructions and one or more memories for storing instructions and data.Generally, a computer will also include, or be operatively coupled tocommunicate with, one or more mass storage devices for storing datafiles; such devices include magnetic disks, such as internal hard disksand removable disks; magneto-optical disks; and optical disks. Storagedevices suitable for tangibly embodying computer program instructionsand data include all forms of non-volatile memory, including by way ofexample semiconductor memory devices, such as EPROM, EEPROM, and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,ASICs (application-specific integrated circuits).

To provide for interaction with a user, the features can be implementedon a computer having a display device such as a CRT (cathode ray tube)or LCD (liquid crystal display) monitor for displaying information tothe user and a keyboard and a pointing device such as a mouse or atrackball by which the user can provide input to the computer.

The features can be implemented in a computer system that includes aback-end component, such as a data server, or that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthem. The components of the system can be connected by any form ormedium of digital data communication such as a communication network.Examples of communication networks include, e.g., a LAN, a WAN, and thecomputers and networks forming the Internet.

The computer system can include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork, such as the described one. The relationship of client andserver arises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of this disclosure. Accordingly, otherimplementations are within the scope of the following claims.

1. A computer-implemented method for controlling content distribution,the method comprising: forwarding information associated with a user toa device operated by the user, the information being configured for usein selecting content from any of multiple content providers for acontent distribution to the user; receiving, in response to theinformation, an edit of the information forwarded from the device, theedit identifying a first content provider and including a firstmodification of the content distribution regarding the first contentprovider; and storing the edit in association with the information suchthat the first modification is taken into account in the contentdistribution.